package com.yf.exam.modules.trainingarchives.trainingclassschedule.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yf.exam.common.vo.PullDownListVO;
import com.yf.exam.common.vo.TraingTypeAndDescVO;
import com.yf.exam.core.api.dto.BaseIdReqDTO;
import com.yf.exam.core.api.dto.PagingReqDTO;
import com.yf.exam.modules.trainingarchives.pdfexport.dto.second.TrainingClassScheduleExportPdfDTO;
import com.yf.exam.modules.trainingarchives.trainingclassschedule.dto.export.TrainingClassScheduleExportDTO;
import com.yf.exam.modules.trainingarchives.trainingclassschedule.dto.req.TrainingClassScheduleReqDTO;
import com.yf.exam.modules.trainingarchives.trainingclassschedule.dto.resp.TrainingClassScheduleRespDTO;
import com.yf.exam.modules.trainingarchives.trainingclassschedule.entity.TrainingClassSchedule;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 * <p>
 * 培训班课程安排表 服务类
 * </p>
 *
 * @author author
 * @since 2024-12-29
 */
public interface ITrainingClassScheduleService extends IService<TrainingClassSchedule> {

    /**
     * 添加培训班课程安排信息
     * @param reqDTO
     * @return
     */
    Boolean add(TrainingClassScheduleReqDTO reqDTO);

    /**
     * 删除培训班课程安排信息
     * @param id
     * @return
     */
    Boolean deleteById(String id);

    /**
     * 更新培训班课程安排信息
     * @param reqDTO
     * @return
     */
    Boolean updateTrainingclassschedule(TrainingClassScheduleReqDTO reqDTO);

    /**
     * 分页查询培训班课程安排信息
     * @param reqDTO
     * @return
     */
    IPage<TrainingClassScheduleRespDTO> paging(PagingReqDTO<TrainingClassScheduleReqDTO> reqDTO);

    /**
     * 获取培训班课程安排信息详情
     * @param baseIdReqDTO
     * @return
     */
    TrainingClassScheduleRespDTO getDetail(BaseIdReqDTO baseIdReqDTO);

    /**
     * 导入培训课程安排信息
     * @param list
     */
    void importExcel(String id ,List<TrainingClassScheduleExportDTO> list);

    List<TrainingClassScheduleRespDTO> getList();

    /**
     * 导出培训班课程安排表
     */
    TrainingClassScheduleExportPdfDTO getPdfData(String trainingClassId);

    List<PullDownListVO> getPullDownList(String id);

    List<TrainingClassScheduleRespDTO> getlist();

    List<PullDownListVO> getListById(String id);

    TraingTypeAndDescVO getDesc(String id);
}
